package Day8;

/**
 * @Author kalista
 * @Description
 * @Date 2020/11/12  15:59
 **/
public class Test2 {

    public static void main(String[] args) {

//        Cat cat = new Cat();
//        show(cat);

        Dog dog = new Dog();
        show(dog);

        // 向上转型  子类的对象可以直接赋值给父类的对象变量
        Animal cat = new Cat();
        cat.eat();
        // 向下转型  将父类的引用强制转转成子类的引用
        Cat animal = (Cat) cat;
        animal.work();
        animal.eat();


    }

    public static void show(Animal animal){
        animal.eat();
        // 类型判断
        if (animal instanceof  Cat){ // 是猫 做猫的事情
            Cat cat = (Cat) animal;
            cat.work();
        }else if(animal instanceof  Dog){ // 是狗  做狗的事情
            Dog dog = (Dog) animal;
            dog.work();
        }else {
            System.out.println("小样想过来冒充没门");
        }
    }

}
